function exposeTestFunctionNames() {
    return [
    		'test_calcEccentricityEarthOrbit',
    		'test_calcHourAngleSunrise',
    		'test_calcHourAngleSunset',
    		'test_calcSunDeclination',
    		'test_calcSun',
    		'test_calcJD',
    		'test_calcEquationOfTime',
    		'test_calcGeomMeanAnomalySun',
    		'test_calcTimeJulianCent',
    		'test_calcUTC',
    		];
//    'test_isDayLightSavings',
    }
    
var sunType = { Sunrise:0, Sunset:1 };
var anArray = new Array();
var latitude = 38.53;
var longitude = -77.2;
var yyyymmdd = '2008-02-17';
var julianDay = 2454513.708333;
var julianCent = 0.081279;
var eqOfTime = -14.079427;
var gMeanAnomalySun = 3283.488232;
var sunrise = "6:57AM";
var sunset = "5:48PM";
var meanObliquityEcliptic = 84377.643371;
var trueObliquityEcliptic = 23.440425
var hourAngleSunrise = -81.121054;
var hourAngleSunset = 81.143972;
var solarDec = -12.201057;
//Greenwich mean sidereal time
//221.560171
//Greenwich sidereal time
//221.562823
    
function setUp() {
}
    
function tearDown() {
}

function test_calcEccentricityEarthOrbit()
{
	var eccentricityEarthOrbit = calcEccentricityEarthOrbit(julianCent);
	debug( 'eccentricityEarthOrbit: ' + eccentricityEarthOrbit );
	var ans = parseFloat(eccentricityEarthOrbit.toFixed(6));
	assertEquals( eccentricityEarthOrbit + ' a/= eccentricity Earth Orbit', '', ans );
}

function test_calcHourAngleSunrise()
{
	var hourAngle = calcHourAngle(sunType.Sunrise, latitude, solarDec);
	debug( 'hourAngle: ' + hourAngle );
	var ans = parseFloat(hourAngle.toFixed(6));
	assertEquals( hourAngle + ' a/= Hour Angle', hourAngleSunrise, ans );
}

function test_calcHourAngleSunset()
{
	var hourAngle = calcHourAngle(sunType.Sunset, latitude, solarDec);
	debug( 'hourAngle: ' + hourAngle );
	var ans = parseFloat(hourAngle.toFixed(6));
	assertEquals( hourAngle + ' a/= Hour Angle', hourAngleSunset, ans );
}

function test_calcSunDeclination()
{
	var sunDeclination = calcSunDeclination(julianCent);
	debug( 'sunDeclination: ' + sunDeclination );
	var ans = parseFloat(sunDeclination.toFixed(6));
	assertEquals( sunDeclination + ' a/= Sun Declination', solarDec, ans );
}

function test_calcGeomMeanAnomalySun()
{
	var geomMeanAnomalySun = calcGeomMeanAnomalySun(julianCent);
	debug( 'geomMeanAnomalySun: ' + geomMeanAnomalySun );
	var ans = parseFloat(geomMeanAnomalySun.toFixed(6));
	assertEquals(
		geomMeanAnomalySun + ' a/= Geom Mean Anomaly Sun',
		gMeanAnomalySun, ans );
}

function test_calcEquationOfTime()
{
	var equationOfTime = calcEquationOfTime(julianCent);
	debug( 'equationOfTime: ' + equationOfTime );
	assertEquals( equationOfTime + ' a/= Equation Of Time',
		eqOfTime, parseFloat(equationOfTime.toFixed(6)) );
}

function test_calcTimeJulianCent()
{
	var timeJulianCent = calcTimeJulianCent(julianDay);
	debug( 'timeJulianCent: ' + timeJulianCent );
	assertEquals( julianCent + ' a/= julian century',
		julianCent, parseFloat(timeJulianCent.toFixed(6)) );
}

function test_calcUTC()
{
	
	var riseTimeGMT = calcUTC(sunType.Sunrise, julianDay, latitude, longitude);
	debug( 'riseTimeGMT: ' + riseTimeGMT );
//	assertEquals( yyyymmdd + ' a/= julian date', julianDay, jd );
}

function test_calcSun()
{
	var splitDate = new Array();
	var splitDate = yyyymmdd.split( "-" );
	var [rise, set] = calcSun(latitude, longitude, splitDate[0], splitDate[1], splitDate[2]);
	assertEquals( rise + ' a/= Sunrise', sunrise, rise );
	assertEquals( set + ' a/= Sunset', sunset, set );
	debug( 'Sunrise: ' + rise );
	debug( 'Sunset: ' + set );
}

function test_calcJD()
{
	var julianDay = 2454513.5;
	var splitDate = new Array();
	var splitDate = yyyymmdd.split( "-" );
	var jd = calcJD(splitDate[0], splitDate[1], splitDate[2]);
	assertEquals( yyyymmdd + ' a/= julian date', julianDay, jd );
	debug( 'Julian Date: ' + jd );
}

function test_isDayLightSavings()
{
	debug( 'testIsDayLightSavings' );
	var dateStr = "March 6, 2008";
	var x = new Date( dateStr );
	assertFalse( dateStr + " a/ is not daylight savings",
			Boolean(isDayLightSavings(x)) );
	
	var dateStr = "March 16, 2008";
	var x = new Date( dateStr );
	assertTrue( dateStr + " a/ is daylight savings",
			Boolean(isDayLightSavings(x)) );
	
	var dateStr = "July 11, 2008";
	var x = new Date( dateStr );
	assertTrue( dateStr + " a/ is daylight savings",
			Boolean(isDayLightSavings(x)) );
}